home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / MM2_DEV / S / MOS / FILEBASE.D < prev    next >
Encoding:
Modula Definition  |  1989-09-03  |  3.0 KB  |  68 lines

  1. DEFINITION MODULE FileBase;
  2.  
  3. (*
  4.    5.6.88  TT  Die Treibervariablen f. InOut befinden sich nun im Modul
  5.                 'InOutBase'.
  6.    7.8.89  TT  'ErrMsgField' nun als 'FileErrMsg' in 'MOSConfig'
  7.    3.9.89  TT  'UDriver' erweitert/geändert
  8. *)
  9.  
  10. FROM SYSTEM IMPORT LONGWORD, ADDRESS;
  11.  
  12. FROM SysTypes IMPORT ScanDesc;
  13.  
  14.  
  15. TYPE    File0;
  16.  
  17.  
  18. TYPE    CloseProc = PROCEDURE ( File0, (* new: *) BOOLEAN);
  19.         ErrorProc = PROCEDURE ( VAR File0, (* errNo: *) INTEGER, ScanDesc );
  20.  
  21. VAR     CloseFile  : CloseProc;
  22.         HandleError: ErrorProc;
  23.  
  24. VAR     InitDriver: PROC;       (* Wird aufgerufen, sobald Files init. ist *)
  25.  
  26. TYPE    Unit = (con,prn,aux,kbd,midi,ext1,ext2,ext3,ext4,ext5,ext6,ext7);
  27.         UOpenProc  = PROCEDURE ( VAR (* handle: *) LONGWORD,
  28.                                      (* name:   *) ARRAY OF CHAR ): INTEGER;
  29.         UCloseProc = PROCEDURE ( (* handle: *) LONGWORD ): INTEGER;
  30.         UFlushProc = PROCEDURE ( (* handle: *) LONGWORD ): INTEGER;
  31.         UGChrProc  = PROCEDURE ( (* handle: *) LONGWORD ): INTEGER;
  32.                                      (* RETURN: <0:Fehler, >0:ORD(Zeichen) *)
  33.         UEOFProc   = PROCEDURE ( (* handle: *) LONGWORD ): BOOLEAN;
  34.         URStrProc  = PROCEDURE (     (* handle: *) LONGWORD,
  35.                                  VAR (* string: *) ARRAY OF CHAR ): INTEGER;
  36.         UWStrProc  = PROCEDURE (     (* handle: *) LONGWORD,
  37.                                  REF (* string: *) ARRAY OF CHAR ): INTEGER;
  38.         UDataProc  = PROCEDURE (     (* handle: *) LONGWORD,
  39.                                      (* addr:   *) ADDRESS,
  40.                                  VAR (* len:    *) LONGCARD ): INTEGER;
  41.  
  42.         UDriver = RECORD
  43.                     valid  : BOOLEAN;    (* TRUE: Unit installiert *)
  44.                     name   : ARRAY [0..7] OF CHAR; (* mit ":" am Ende! *)
  45.                     CASE console: BOOLEAN OF
  46.                      TRUE:
  47.                       (* InOut-Treiber verwenden *)|
  48.                      FALSE:
  49.                        input  : BOOLEAN;    (* TRUE: Eingabe möglich *)
  50.                        output : BOOLEAN;    (* TRUE: Ausgabe möglich *)
  51.                        initHdl: LONGWORD;   (* Hilfswert, wird bei E/A Pro-  *)
  52.                                             (* zeduren als 'handle' übergeben*)
  53.                        open   : UOpenProc;  (* Öffnungsprozedur *)
  54.                        close  : UCloseProc; (* Schließprozedur *)
  55.                        eof    : UEOFProc;   (* physik. EOF-Abfrage *)
  56.                        flush  : UFlushProc; (* 'Flush'-Prozedur *)
  57.                        wrData : UDataProc;  (* Ausgabe f. beliebige Daten *)
  58.                        wrStr  : UWStrProc;  (* Ausgabe f. Strings (0-term.)*)
  59.                        rdData : UDataProc;  (* Eingabe f. beliebige Daten *)
  60.                        rdChr  : UGChrProc;  (* Eingabe f. einzelne CHARs *)
  61.                     END
  62.                   END;
  63.  
  64. VAR     (* Treiberfunktionen für Modul 'Files' *)
  65.         UnitDriver: ARRAY [con..ext7] OF UDriver;
  66.  
  67. END FileBase.
  68.